Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

rd-refine change missing; fixing no-open-gop doing nothing #145

Closed
wants to merge 22 commits into from

Conversation

iAvoe
Copy link
Contributor

@iAvoe iAvoe commented Mar 1, 2023

This is a follow up of pull request #141:

  • Some rd-refine disablement was missing: It does not work & prompts with warning when rd<4, change was made from Update x265 params #141 by switching parameter value to 0 (disable) for all presets.

  • Unsuccessful at applying no-open-gop: It turns out the "no-open-gop": "1" doesn't work, I have changed all occurences to "open-gop": "0"

Notes:

Open GOP (Group of pictures) is a video stream structure standard that allows further compression by allowing reference-based compression to work beyond GOP border, which adds compression slightly in trade-off on some compatibility and increases error propagation distance.

  • GOP border prevents error propagation beyond a GOP (if video stream is slightly damaged, many reference frame will point to corrupted sources) and offers player-end random access (frames where media player can start to decode a video stream)
    There are short GOP and long GOP encoding choices:
  • Short GOP reduces computation cost by trading off with encoding speed, the compression is compensated with open-GOP by still allowing some reference-based compressions to work, which is better for low power devices
  • Long GOP increases computation cost & quality by doing a lot more motion analysis, open-GOP no longer offers significant compression bonus, and becomes more prone to error-propagation, which needs to disable open-GOP for better stability.
  • There are potential compatibility problems when working with open-GOP videos, too

iAvoe and others added 22 commits April 18, 2022 21:58
I've used VSCode and edited those 2 files, and made sure the json format was correct and all parameters are linked to the definitions in the bottom part of file.
However due to I've mainly worked with x265.exe instead of libx265, some parameters are missing in libx265 and I cannot gurantee they actually will work (some parameter may get deleted or the definitions needs to be modified if libx265 v3.5 persists not recognizing)
Software is not my profession and I wish I could compile and test the changes myself. Someone needs to compile and check in software to see if the parameters are applied correctly.
Changes also happened in x264 parameters, they have been separated with color profiles (4:2:0 and 4:4:4) thus creates more versions, just 1 version needs to be tested for them.
libx265.json worked prefectly in both value application and encoding (I stopped encoding half way because it's too slow).
libx264.json has some issues, I'll provide images and this change is the fix
Missspelled to 'offest', didn't catch this error previously
…st-scenecut, hist-threshold are currently missing. Deblock formatting was fixed (default CLI was deblock +-int:+-int, but realized it was actually a comma instead of colon)
…st-scenecut, hist-threshold are currently missing. Deblock formatting was fixed (default CLI was deblock +-int:+-int, but realized it was actually a comma instead of colon)
…array (no formatting errors found in VSCode);

Changed default value for --weightp to {value: true} in property array which matches with default true in x265, this doesn't encoding but only reduces confustion
…p Coldwar; disabled mcstf because it still disables multithreading so far (huge performance issue;disabled hist-scenecut due to test reveled stability issue, especially at 12bit)


Tip of this branch is behind official version
@iAvoe
Copy link
Contributor Author

iAvoe commented Mar 1, 2023

The "no-open-gop" failing problem could be one occurence addressed in #64.

@Vouk
Copy link
Owner

Vouk commented Mar 1, 2023

I have added the changes manually.

@Vouk Vouk closed this Mar 1, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants